1. Field of the Invention
The invention relates to a system, method, and computer program product for determining decision steps of a programming logic set executed by a computer. Particularly, the present invention provides users with the details of how a pass/fail decision was made in a programming logic set executed by a computer.
2. Description of the Related Art
The cumulative effect of many investment decisions over a variety of assets and/or investments ultimately defines whether a portfolio of assets is successful. Poor investment decisions result in a loss of capital (e.g., a reduction in the value of an asset or portfolio of assets) or a lower rate of return. A financial institution's business model relies on the assumption that an acceptable rate of return can be made (e.g., a bank, mutual fund, hedge fund, real estate syndicate etc.). A poor investment decision substantially and negatively affects the financial institution's profitability and has a significant and lasting negative effect on the economic viability of the financial institution.
One way to minimize the risk of loss associated with investment decisions is to obtain insurance. In certain instances, a purchaser or holder of a large number of similar investment vehicles (such as mortgages or asset backed securities) may enter into an agreement with an insurer. The agreement will include the conditions the investment vehicle must satisfy (or pass) in order to be insured by the insurer. For example, if the investment vehicle is a mortgage, a mortgage insurer might require that the mortgage have a loan to value ratio of more than 80% before insuring the mortgage. The loan to value ratio is only an exemplary condition that may be imposed by a mortgage insurer before insuring a mortgage. Other exemplary conditions may involve the interest rate, the term of the loan, or funding date. The conditions for insurance imposed by a mortgage insurer can be complex, and it is time consuming to analyze the mortgages individually by comparing them to the constraints imposed by the mortgage insurer.
Conventionally, computers have been used to compare data representing provisions of the investment vehicle (i.e., a mortgage) to the conditions of the insurer. Conventional computer applications interface with the computer to check through true or false (e.g., pass/fail) conditions to make a decision of whether an investment vehicle satisfies (e.g., passes) the conditions imposed under an agreement with the insurer.
With respect to the computer application, the conditions imposed by the insurer can be programmatically organized into a program logic set that contains 2 groups in 3 levels. The first level is an AND-group level. The second level is an OR-group level. The third level is an individual condition level. Each AND-group can have more than one OR-group within it. Each OR-group can have more than one individual condition within it. The number of AND-groups, OR-groups and individual conditions determine the level complexity of the task the computer application is processing.
An AND-group condition is considered to be true if at least one of all OR-groups within the AND-group is true. An OR-group is considered true if all individual conditions within the OR-group are true. If all AND-groups are true, the whole set of logic is considered a pass. Otherwise, the logic set is considered a fail. FIG. 1 shows an exemplary structure of programming logic set.
As shown in FIG. 1, there are two AND-groups 2A and 2B. Within AND-group 2A, there are three OR-groups 1A, 1B, and 1C. Within AND-group 2B, there are three OR-groups, 1D, 1E, and 1F. Within each OR-group, there are shown three individual conditions. When a computer is executing the program logic, it will check through each AND-group. Inside each AND-group, the computer will check each OR-Group by order. If one of the OR-groups is satisfied, that means all individual conditions are satisfied in the OR-group. For example, if OR-group 1A is satisfied (i.e., all individual conditions within 1A are satisfied), then AND-group 2A is also satisfied. Thus, the computer will not check the rest of the OR-groups (1B or 1C) within AND-group 2A. The conventional technique is performed this way because it uses fewer computer resources and improves computer efficiency. Efficiency is improved because the computer does not check programming conditions that do not affect the pass or fail decision, regardless if they are satisfied.
For example, if OR-group 1A passes and OR-group 1B passes, the AND-group 2A passes. If OR-group 1A passes and OR-group 1B fails, the AND-group 2A still passes. Once the computer determines that AND-group 2A passes, the results of OR-group 1B are irrelevant. Thus, the conventional technique skips OR-group 1B and any other irrelevant processing.
The conventional approach does not allow a user to question the results of the programming logic. For example, if the computer determined that a loan did not pass or satisfy the conditions imposed under an agreement with the mortgage insurer, a user of the conventional approach would not know the reason why the computer determined that a loan did not pass or satisfy the conditions. The conventional approach provides only the overall result. In many cases, a user needs to know not only the result of the program logic, but also the details of the pass or fail of each AND-group, OR-group, and even the individual conditions inside the OR-groups. Conventional programming logic is not able to effectively provide detailed decision-making information.
Using the conventional technique, if a user questioned the results of the programming logic, the user would have to go through the programming logic set manually to see which conditions caused the data representations of the loan to fail. This is a very time consuming process where mistakes can be easily made.
There are many reasons for users to question the processing results and for users to need the detailed information about how the pass/fail decision was made. For example, if the computing process does not match the user's expectations, this might indicate that the programming logic is incorrect, or that a human error occurred such as information having been input into the computer incorrectly.
The present inventor has recognized a need for a new programming approach to deal with a situation where a user needs to know the details of how pass/fail decisions were made after the programming logic set is executed by the computer. Furthermore, there is also a need for a computer capable of showing the role each individual condition plays in making pass/fail decisions.
Furthermore, in the context of the example discussed above involving mortgages, a new programming approach would help individual loan holders by reducing processing costs of the mortgage guarantors and mortgage insurers.